/*

This file is part of roomyak.

Copyright (C) 2008 Pixecur Technologies Incorporated (Esotera).
Visit Esotera at http://www.esoteras3.com
 
roomyak is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
 
roomyak is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with roomyak; see the file COPYING.  If not, write to 
Pixecur Technologies, 213-31 Peet Street, St. John's, NL, A1B 3W8. 
 
Linking this library statically or dynamically with other modules is
making a combined work based on this library.  Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
 
*/

package com.datasentinel.util.win32;

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.WString;
import com.sun.jna.ptr.IntByReference;

interface Win32UtilsLibrary extends Library {
	
	
	Win32UtilsLibrary INSTANCE = (Win32UtilsLibrary)
//        Native.loadLibrary("D:\\Projects\\C\\VCPP\\dataSentinel\\Win32Utils\\Release\\Win32Utils", Win32UtilsLibrary.class);
    	Native.loadLibrary("Win32Utils", Win32UtilsLibrary.class);
    
    boolean OpenFileInDefaultEditor(WString fileName);
    boolean ExecuteShellCommand(WString command, WString workingDirectory, WString arguments);
    boolean ExtractFileThumbnail(WString fileName, boolean large, IntByReference bufferSize, byte[] pngBuffer);
	boolean SetProcessPriorityBelowNormal();
	boolean SetProcessPriorityNormal();
	boolean SetProcessPriorityAboveNormal();   
	long GetCurrentProcessNumericId();
	int MapNetworkDrive(WString remPath, WString localPath, WString userName, WString password, boolean jinteractive, boolean jprompt);
	int DeleteNetworkDrive(WString devName, boolean jupdProfile, boolean jforce);
	boolean SetWorkingSetSize(long jminBytes, long jmaxBytes);
	int GetNetworkDriveRemotePath(WString lpLocalName, byte[] nameBuffer, IntByReference length); 
}
